In recent years, as a scalable application execution infrastructure, so-called cloud computing using many computers has been drawing attention. As a scalable persistent data storage unit in a cloud infrastructure, a Key Value Store (KVS) is widely known. A KVS stores Key Value data (KV data) expressed in the form of a pair of Key and Value. However, a general KVS can provide a transaction on only one KV data.
Therefore, a system which supports a transaction on a plurality of KV data is proposed as a first related technique related to the present invention (see Patent Document 1 and Non-Patent Document 1, for example). In the first related technique, for implementation of a transaction on a plurality of KV data, a plurality of KV data to be dealt with in a transaction are grouped and written as one KV data into a KVS. Thus, a transaction on a plurality of KV data is implemented. In this specification, data as a result of gathering a plurality of KV data into one KV data will be referred to as a data group.
Moreover, in the first related technique, optimistic exclusion is used as a system of exclusive control on a KVS. A specific description is as follows. A timestamp is given to each KV data in advance, and when a certain transaction is started, the timestamp is acquired. In a case where the timestamp has not changed since the start of the transaction at the time of update and commit of the KV data, the timestamp is increased by one and written into the KVS. In a case where the timestamp has changed at the time of the commit, the KV data has already been updated during a period from the start of the transaction to the commit, and therefore, the transaction is made to fail. Optimistic exclusion does not use a shared resource such as exclusive control information, and hence, facilitates scaling out.
On the other hand, a transaction system which employs a system of exclusive control called pessimistic exclusion is proposed as a second related technique related to the present invention (see Patent Document 2, for example). In the second related technique, at the time of update processing on a data file in response to a record update request made by a transaction, concurrent access to a record to be updated is exclusively controlled by an exclusive control mechanism. Moreover, update of the record is performed on a buffer, and also, a history of the update of the record on the buffer is generated. At the time of commit of the transaction, a generated update history per record corresponding to the transaction is recorded in a journal file. Then, the data file is updated per block through a write buffer based on the update history recorded in the journal file.    Patent Document 1: Japanese Unexamined Patent Application Publication No. JP-A 2012-234509    Patent Document 2: Japanese Unexamined Patent Application Publication No. JP-A 09-062550 (1997)    Non-Patent Document 1: SUKENARI Teruki, TAMURA Minoru, ““InfoFrame Relational Store,” a New Scale-Out Database for Big Data,” NEC Technical Journal, Vol. 65, No. 2/2012
As mentioned above, a KVS is drawing attention as a scalable persistent data storage unit, and a system which supports a transaction on a plurality of KV data in a KVS is proposed. However, with the abovementioned system of optimistic exclusive control on a KVS, only exclusion with one KV data as a unit of exclusion can be realized. In a system which gathers a plurality of KV data into one KV data and executes a transaction, the one KV data obtained by gathering the plurality of KV data is a unit of exclusion. Therefore, transactions which do not constitute exclusion violation originally may be considered to constitute exclusion violation, and consequently, a problem of decrease of concurrent executability of transactions and decrease of throughput arises. It is thought of to apply pessimistic exclusion described in the second related technique related to the present invention and perform exclusion with each of the KV data before gathered into the one large KV data as the exclusion unit, but scaling out is difficult in pessimistic exclusion and it makes no sense to use KV data.